import Mock from 'mockjs'
import qs from 'qs'

// mock的配置
Mock.setup({
  // 随机延时500-1000毫秒
  timeout: '500-1000'
})

// 拦截请求，
// 第一个参数：url，使用正则去匹配
// 第二个参数：请求方式
// 第三个参数： 生成数据的函数
Mock.mock(/\/my\/test/, 'get', () => {
  return {
    msg: '请求测试接口成功',
    result: [
      {
        id: Mock.Random.id(),
        name: Mock.Random.ctitle()
      }
    ]
  }
})

// 模拟 - 获取收藏分页数据
Mock.mock(/\/member\/collect/, 'get', (config) => {
  // console.log(config)
  // 取到GET请求参数
  const queryStr = config.url.split('?')[1]
  // 💥 注意：需要导入 qs 依赖包   import qs from 'qs'
  // 把请求参数转换成对象        qs.parse() 用法类似 JSON.parse()
  const { page, pageSize, collectType } = qs.parse(queryStr)
  console.log('请求参数', { page, pageSize, collectType })

  return {
    msg: '操作成功',
    result: Mock.mock({
      // 总记录数：随机生成 50-100 整数
      counts: Mock.Random.integer(50, 100),
      // 总页数：随机生成 1-20 整数
      pages: Mock.Random.integer(1, 20),
      // 页容量：用户传参
      pageSize: Number(pageSize),
      // 页码：用户传参
      page: Number(page),
      // 数据集合：商品对象数组
      ['items|' + pageSize]: [
        {
          id: '@id', // id
          name: '@ctitle(5, 10)', // 名称
          desc: '@ctitle(10, 20)', // 描述
          picture: '@dataImage("300x300")', // 图片
          collectType: collectType, // 收藏类型，1为商品，2为专题，3为品牌
          price: '@float(1, 1000, 2, 2)', // 商品-商品价格
          discount: '@integer(1, 10) / 10', // 商品-折扣信息
          productionPlace: '@county(true)', // 品牌-产地，多字段通过/分割
          detailsUrl: '' // 详情链接
        }
      ]
    })
  }
})
